//package com.example.demo;
//
//import java.math.BigDecimal;
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Optional;
//
//public class DemoStream2 {
//
//    public static void main(String[] args) {
//
//        //List<Employee> employeeList=new ArrayList<>();
//        //employeeList.add(new Employee("老王",60,new BigDecimal(30000.0)));
//        //employeeList.add(new Employee("小明",23,new BigDecimal(6000)));
//        //employeeList.add(new Employee("小马",15,new BigDecimal(0)));
//        //employeeList.add(new Employee("老罗",45,new BigDecimal(1000000)));
//        //employeeList.add(new Employee("小军",50,new BigDecimal(60000.0)));
//        //employeeList.add(new Employee("小军",50,new BigDecimal(70000.0)));
//
//
//        //按照工资进行排序
//        //1.中间操作 map 映射你需要操作的属性
//        //2.对映射的工资属性，进行排序
//        //3.结果：对排完进行便利
//         employeeList.stream().map(Employee::getSalary).sorted().forEach(System.out::println);
//
//
//        System.out.println("============================================我是分隔线===========================================");
//         //筛选年龄大于30的员工
//        employeeList.stream().filter((o)->o.getAge()>30).forEach(System.out::println);
//
//        System.out.println("============================================我是分隔线===========================================");
//        //删选第一个员工
//        employeeList.stream().limit(1).forEach(System.out::println);
//
//        System.out.println("============================================我是分隔线===========================================");
//        //去重(会自动调用hashCode和equals方法)
//        employeeList.stream().map(Employee::getName).distinct().forEach(System.out::println);
//        System.out.println("============================================我是分隔线===========================================");
//        //跳过
//        employeeList.stream().skip(1).forEach(System.out::println);
//        System.out.println("============================================我是分隔线===========================================");
//
//        //排序 年龄相同比较工资，否则就是比较年龄
//        employeeList.stream().sorted((o1,o2)->{
//            if(o1.getAge().equals(o2.getAge())){
//                return o1.getSalary().subtract(o2.getSalary()).intValue();
//            }else{
//                return o1.getAge()-o2.getAge();
//            }
//        }).forEach(System.out::println);
//
//        System.out.println("============================================我是分隔线===========================================");
//
//        //检查是否匹配所有元素
//        Boolean b= employeeList.stream().allMatch((o)->o.getAge()>30);
//        System.out.println(b);
//        //检查是否存在匹配元素
//        Boolean c=employeeList.stream().anyMatch((o)->o.getAge()>30);
//        System.out.println(c);
//        //检查是否没有匹配元素
//        Boolean d=employeeList.stream().noneMatch((o)->o.getAge().equals(30));
//        System.out.println(d);
//        //返回第一个元素
//        Optional<Employee> e= employeeList.stream().findFirst();
//        System.out.println(e);
//        //返回当中任一元素
//        Optional<Employee> f=employeeList.stream().findAny();
//        System.out.println(f);
//        //返回流中元素个数
//        long g=employeeList.stream().filter((o)->o.getName().equals("小军")).count();
//        System.out.println(g);
//        //最大值
//        Employee ee= employeeList.stream().max((o1,o2)->o1.getAge()-o2.getAge()).get();
//        System.out.println(ee);
//        //最小值
//        Employee gg=employeeList.stream().min((o1,o2)->o1.getAge()-o2.getAge()).get();
//        System.out.println(gg);
//
//
//
//    }
//}
